<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    function fn (a, b, c) {
      return a + b + c
    }

    /* 
    函数柯里化: 将一次传递参数的方式变为多次传递
      函数就会嵌套返回 => 整个函数也称为柯里化函数
      惰计算: 外层调用时先不进行计算, 最内层的函数调用时才进行计算
      柯里化函数是一种特别的高阶函数
    */

    function fn2(a) {
      return function (b) {
        return (c) => {
          return a + b + c
        }
      }
    }

    console.log(fn(1, 2, 3))
    console.log(fn2(1)(2)(3))
  </script>
</body>
</html>